Conventional distributed electronic storage management solutions are well known and widely utilized. These solutions are often configured to manage storage elements that are connected to a distributed computing system. Storage elements, comprised in such a system, can fall into two categories, namely, storage consumers and storage providers. On a static system, rules and policies can be determined in advance of the management system's operation. This can be done through benchmarking and prior testing with respect to the storage consumers and storage providers that reside on the system. Additionally, in a static system, each storage element can be identified, its physical connection type and location can be determined, and its expected workload contribution to the system can be predicted prior to operation of the management solution. As such, an adequate analytical workload model of the system, comprising each storage element, can be generated that indicates the behavior of the system. The behavioral model, often called a workload model, can be utilized to optimize the operation of the management of the static system.
While static system distributed electronic storage management solutions are known, electronic storage management solutions for dynamic systems are less common due to the implicit complexity of modeling the behavior, or workload, of a dynamic system. A dynamic system can be defined as a system where a multitude of uncertainties exist. As such, the architecture and workload of a dynamic system cannot be effectively predicted using schemes developed for static systems. Techniques such as benchmarking, prior testing, and conventional workload modeling cannot be utilized in a dynamic system.
Additionally, dynamic systems are becoming more and more common. Due to the rapid growth of mobile computing devices, including cellular phones, areas referred to as smart spaces are becoming popular. In a smart space, the storage resources of mobile computing devices are shared though each device's connection to the system. As such, any device in the smart space can access storage on any other device, creating a dynamic distributed storage environment.
However, difficulties arise when attempting to model and predict the behavior of such a system. Since smart spaces are often comprised of mobile computing devices, any device can enter or leave the system at anytime. Since storage resources are distributed over several devices, and the storage consumers are not always located in the device where the desired content resides, it can be challenging to provide uniform storage to all devices on the system. Additionally, since numerous uncertainties exist, including, among other uncertainties, connectivity and device location, the systems cannot be effectively modeled using the conventional methods.
A remedial solution to problem of dynamic system storage management is to simply copy all content on the system to all devices. However, such a solution would be infeasible when factors such as the available storage space, power consumption, performance, and connection reliability are considered. Such a solution would result in excessive power consumption and substantial utilization of communication channel bandwidth resulting in latency even when sufficient storage capacity is available. Further, due to the dynamic connection topology, it cannot be guaranteed that data will be reliably transmitted and stored on each device. Accordingly, such a solution would not be effective, and some instances infeasible.
Thus, it would be advantageous to provide a mechanism for developing a behavior or workload model of a system, that can be used to manage and control a dynamic distributed electronic storage system. The workload models should be able to account for the existence of numerous uncertainties on a system in a real-time fashion, such that models of the system can be defined at any instant in time.